iT邦幫忙

2024 iThome 鐵人賽

DAY 10
0
Software Development

我命由我不由語言 java爬蟲挑戰系列 第 10

java爬蟲挑戰 Day 10 - H2 資料庫 & JPA 引入

  • 分享至 

  • xImage
  •  

由於我們的專案規模很小,所以資料庫直接使用H2資料庫。連接資料庫的方式我習慣用JPA。

什麼是 H2 資料庫?

H2 是一個輕量級的 Java 嵌入式資料庫,支援 SQL 標準,並且可以在內嵌模式下運行,這意味著你不需要安裝和配置外部的資料庫伺服器即可使用。

什麼是 JPA?

Java Persistence API (JPA) 是 Java EE (Enterprise Edition) 規範的一部分,用於管理 Java 對象與關聯式資料庫之間的映射和持久化。JPA 提供了一種簡單且標準化的方式,將 Java 對象(也稱為實體)映射到資料庫中的表格,並提供了一組 API 來執行 CRUD(創建、讀取、更新、刪除)操作。

專案導入H2 & JPA

pom.xml

</dependency>
<!-- https://mvnrepository.com/artifact/com.h2database/h2 -->
<dependency>
	<groupId>com.h2database</groupId>
	<artifactId>h2</artifactId>
	<version>2.3.232</version>
</dependency>
<!--
https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-jpa -->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-data-jpa</artifactId>
	<version>3.3.3</version>
</dependency>

application.properties

# H2 的配置
# 指定 H2 資料庫的路徑,資料會寫入指定的檔案
spring.datasource.url=jdbc:h2:file:./data/mydatabase;DB_CLOSE_ON_EXIT=FALSE;AUTO_RECONNECT=TRUE
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=password
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console
spring.h2.console.settings.web-allow-others=true

# JPA 的配置
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.jpa.hibernate.ddl-auto=update

RentalDetail

建立租屋資訊Table的Schema,我目前只需要存儲新刊登的網址即可。
因為我們有設置spring.jpa.hibernate.ddl-auto=update
所以jpa會自動建立schema

package tw.grass.rental_crawler.entity;

import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import lombok.Data;

@Entity
@Data
public class RentalDetail {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String link;
}

執行

執行後,JPA就會幫我們完成table的建立了。
H2的Schema、data都存在我們設定檔案中。
https://ithelp.ithome.com.tw/upload/images/20240827/2016863529MAltEP4O.png

H2 Console

那H2也有提供管理介面,需要另外安裝。

方式為:
前往H2官網下載H2 Console來看DB結構、資料。
https://ithelp.ithome.com.tw/upload/images/20240827/201686352wz7Rxa0i9.png

安裝好後執行,會自動用瀏覽器打開
https://ithelp.ithome.com.tw/upload/images/20240827/20168635Z3X1Cgr8vW.png

需要輸入我們mydatabase.mv.db的路徑

jdbc:h2:file:D:/Project/rental-crawler/data/mydatabase;mv_store=true

https://ithelp.ithome.com.tw/upload/images/20240827/201686351fJdBCcdyd.png

及其他們我們設置的資訊
https://ithelp.ithome.com.tw/upload/images/20240827/20168635Z5ubegDdTF.png

接著就可以看到資料了,我們現在沒資料
https://ithelp.ithome.com.tw/upload/images/20240827/20168635SQIUb2nP85.png

git現狀

https://ithelp.ithome.com.tw/upload/images/20240827/20168635x4aqySe2VU.png

小結

今天使用H2跟JPA完成了DB、及Table Schema的建立,明天再來寫資料庫的操作邏輯。


上一篇
java爬蟲挑戰 Day 9 - 使用Jsoup解析物件 (2)
下一篇
java爬蟲挑戰 Day 11 - 爬蟲模組完成
系列文
我命由我不由語言 java爬蟲挑戰30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言